GKE Autopilot
securityContext に SYS_PTRACE 設定できない
まあそうか
code:error
Error from server (denied by autogke-default-linux-capabilities linux capability <{"SYS_PTRACE"}> on container <batch> not allowed; Autopilot only allows the capabilities: <"SETPCAP", "MKNOD", "AUDIT_WRITE", "CHOWN", "NET_RAW", "DAC_OVERRIDE", "FOWNER", "FSETID", "KILL", "SETGID", "SETUID", "NET_BIND_SERVICE", "SYS_CHROOT", "SETFCAP">. Requesting user: <***> and groups: <"system:authenticated">): error when creating "STDIN": admission webhook "validation.gatekeeper.sh" denied the request: denied by autogke-default-linux-capabilities linux capability <{"SYS_PTRACE"}> on container <batch> not allowed; Autopilot only allows the capabilities: <"SETPCAP", "MKNOD", "AUDIT_WRITE", "CHOWN", "NET_RAW", "DAC_OVERRIDE", "FOWNER", "FSETID", "KILL", "SETGID", "SETUID", "NET_BIND_SERVICE", "SYS_CHROOT", "SETFCAP">. Requesting user: <***> and groups: <"system:authenticated"> なんか Prometheus の Metirc 遅れなかったエラーが流れまくる
Autopilot に限らない、GKE バージョン上げるといいけど 2021/3/9 のところ Rapid にする感じになるな...
実際どのぐらいの値段になるのか?
可用性がほぼ要らないバッチのみのサービスを Autopilot に乗せるとして
以下に勝てる要素あるのかな? まあそういうワークロードが異常という話はある
自前で GCE プリエンプティブインスタンス上げ続ける
GKE Standard mode で 1リージョン 全台プリエンプティブノード
Node に Image のキャッシュがあまりのこらない
ので storage egress が結構かかる、asia.gcr.io を選ぶ意味がある
とりあえず1GBのイメージを作って CronJob を30分おきに回して試しておく
2021/07/30~8/2 gcr.io
https://gyazo.com/1ba39cf700e9e1f62fa314cc47f37cb3
7/31 の転送量は 3.1Gibibyte
$ docker manifest inspect gcr.io/pokutuna-playground/curl | jq '[.layers[].size] | add' #=> 69285060 このイメージを 24*2 回 pull しているので 69285060 * 24 * 2
69285060 * 24 * 2 / 2**30.to_f => 3.0972835421562195 なので 3.1Gibibyte
Pulling image "..."
Container image "..." already present on machine
CronJob だから Node がほぼ毎回 0 → 1 になるからというのもある
常にアプリケーションが立っていたらだいたい既存の Node に Pod が配置されてキャッシュ効く可能性が上がる
vCPU とインスタンスクラス
汎用は E2
Balanced は N2(Intel) or N2D(AMD)
cloud.google.com/compute-class: COMPUTE_CLASS でリクエスト
これおもしろい
vCPU は 0.25 単位で要求
コンピューティングクラス汎用と Balanced だと vCPU の価格は 1.5倍ぐらい違う
aisa-northeast1 で vCPU/1mo = 汎用 $41.683 / Balanced $60.444
汎用で 0.25 vCPU を 0.5 vCPU に上げる(倍)よりは Balanced にすれば費用 1.5倍で性能ちょっと上げれる
E2: 2.2~2.4 GHz / 2.25~2.45GHz(AMD)
N2: 2.6~2.8 GHz
N2D(AMD): 2.25~2.45GHz(AMD)
まあクロックが1.5倍になるわけではないが / クロックの比にそれほど意味あるわけではないが
セコいけど、CPU プラットフォーム指定したら値段の計算式そのままにクロック高い方使えないか(要確認)
vCPU と物理 CPU の関係が分かってない